package com.cloudfun.campusshare.service;

import com.cloudfun.campusshare.common.model.dto.DeviceModeDTO;
import com.cloudfun.campusshare.common.model.dto.DeviceModeSimpleDTO;
import com.cloudfun.campusshare.common.model.vo.DeviceModeVO;
import com.cloudfun.campusshare.entity.DeviceModeEntity;

import java.util.Collection;
import java.util.List;

/**
 * Created by Huqin on 2020/4/20
 */
public interface DeviceModeService {

    /**
     * 保存
     *
     * @param modeSetId
     * @param modeEntities
     */
    void save(String modeSetId, List<DeviceModeEntity> modeEntities);

    /**
     * 根据商户获取模式
     *
     * @param merchantId
     * @return
     */
    List<DeviceModeDTO> getMerchantModeVOs(String merchantId);

    /**
     * 获取模式
     *
     * @param modeId
     * @return
     */
    DeviceModeDTO getMerchantMode(String modeId);

    /**
     * 根据商户、模式集、设备类型获取模式
     *
     * @param merchantId
     * @param modeSetId
     * @param deviceType
     * @return
     */
    List<DeviceModeVO> getMerchantModeVOs(String merchantId, String modeSetId, String deviceType);


    /**
     * 根据设备识别码获取模式
     *
     * @param machineNo
     * @return
     */
    List<DeviceModeVO> getMerchantModeVOsByMachineNo(String machineNo);

    /**
     * 根据模式集id获取模式
     *
     * @param modeSetId
     * @return
     */
    List<DeviceModeSimpleDTO> getModesByModeSetId(String modeSetId);

    /**
     * 根据模式集id获取模式
     *
     * @param modeSetIds
     * @return
     */
    List<DeviceModeSimpleDTO> getModesByModeSetIds(Collection<String> modeSetIds);

    /**
     * 根据模式集id删除模式
     *
     * @param modeSetId
     */
    void deleteByModeSetId(String modeSetId);

}
